<script>
	import { isLoggedIn, isAuthRequired } from './utils/auth.js';
	
	export default {
		onLaunch: function() {
			console.log('App Launch')
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		onLoad: function() {
			// 添加路由拦截器
			this.addRouteInterceptor();
		},
		methods: {
			addRouteInterceptor() {
				// 监听路由变化
				uni.addInterceptor('navigateTo', {
					invoke: this.checkAuth
				});
				
				uni.addInterceptor('switchTab', {
					invoke: this.checkAuth
				});
				
				uni.addInterceptor('redirectTo', {
					invoke: this.checkAuth
				});
			},
			
			checkAuth(options) {
				// 检查是否是登录页面，如果是则允许访问（允许重新登录）
				if (options.url.startsWith('/pages/login/login')) {
					return true;
				}
				
				// 检查目标页面是否需要登录
				if (isAuthRequired(options.url)) {
					// 检查用户是否已登录
					if (!isLoggedIn()) {
						// 未登录则跳转到登录页面
						uni.showToast({
							title: '请先登录',
							icon: 'none'
						});
						
						// 跳转到登录页面
						setTimeout(() => {
							uni.redirectTo({
								url: '/pages/login/login'
							});
						}, 1000);
						
						// 阻止原路由跳转
						return false;
					}
				}
				return true;
			}
		}
	}
</script>

<style lang="scss">
	/* 每个页面公共css */
	@import "./uni.scss";
	
	/* 全局样式 */
	view, scroll-view, swiper-item {
		box-sizing: border-box;
	}
</style>